In general, data communication systems that include a master and a slave may be classified as either high-speed communication systems or as low-speed communication systems. Low-speed communication systems are generally used, for example, to set a register or to turn on/off a hand-held device.
One type of bus used in low-speed communication systems is an inter-integrated circuit (I2C) bus. An I2C network is a small-sized network established by connecting integrated circuits (ICs) and other electronic systems using an I2C bus.
In an I2C network, a master generates a start signal and a stop signal, thereby initiating communication. The master generates a clock signal, transmits slave addresses, and determines a direction in which data is to be transmitted. An example of the master is a central processing unit (CPU). An I2C bus may be comprised of two lines: a serial clock line (SCL) and a serial data line. The I2C bus carries out serial data communications using these lines.
A considerable number of devices may be connected to an I2C bus waiting for their turn to communicate. The devices are in a slave state when the I2C bus is inactivated. In the slave state, the devices are able to make a response to the master when addressed by the master.